home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / SYSVARS2.D < prev    next >
Encoding:
Modula Definition  |  1990-12-12  |  10.8 KB  |  201 lines

  1. DEFINITION MODULE SysVars2;
  2.  
  3. (*  --------------------------------------------------------------------------
  4.  *  System-Version: MOS 2.2
  5.  *  Version       : 1.0
  6.  *  Text-Version  : V#005
  7.  *  Modul-Halter  : Dirk Steins
  8.  *  Copyright Dezember 1990 by Dirk Steins
  9.  *  --------------------------------------------------------------------------
  10.  *  DS  : Dirk Steins
  11.  *  TT  : Ter Tempelmann
  12.  *  --------------------------------------------------------------------------
  13.  *  Datum    Autor  Version  Bemerkung (Arbeitsbericht)
  14.  *
  15.  *  03.12.90 DS     0.1      Erste Definitionen
  16.  *  04.12.90 DS     1.0      Alle Defintionen fertig
  17.  *  06.12.90 TT     1.0      Kleine Korrekturen
  18.  *)
  19.  
  20. (* Systemvariable nach dem Profibuch
  21.  * Bezeichnungen nach
  22.  *      Atari ST Profi Buch
  23.  *      Jankowski, Rabich, Reschke
  24.  *      Sybex-Verlag
  25.  *
  26.  * Mehr Informationen zu den Variablen gibt es ebenfalls in diesem
  27.  * genanntem Werk.
  28.  *
  29.  * In diesem Modul sind die Systemvariablen nicht als Adressen
  30.  * wie im Modul SysVars aufgeführt, sondern direkt als absolut
  31.  * adressierte Variablen.
  32.  * Auf die Variablen darf nur aus dem Supervisormodus zugegriffen
  33.  * werden, da sonst ein Bus-Error ("Zugriff auf unbekannte Adr.")
  34.  * erfolgt. Verwenden Sie dazu z.B. die Funktionen des Moduls "SysUtil1".
  35.  *)
  36.  
  37. FROM SYSTEM     IMPORT ADDRESS, BYTE;
  38.  
  39. FROM SysTypes   IMPORT BBS, PtrBP, PtrOSHeader;
  40.  
  41. FROM GrafBase   IMPORT PtrPalette;
  42.  
  43. TYPE PtrVBL     = POINTER TO ARRAY [0..MAX(SHORTCARD)] OF ADDRESS;
  44.  
  45.      PtrMD      = POINTER TO MD;
  46.      MD         = RECORD
  47.                     m_link  : PtrMD;
  48.                     m_start : ADDRESS;
  49.                     m_length: LONGCARD;
  50.                     m_own   : PtrBP;
  51.                   END;
  52.      
  53.      PtrHDInfo  = POINTER TO HDInfo;
  54.      HDInfo     = RECORD
  55.                     puns        : SHORTCARD;
  56.                     pun         : ARRAY [0..15] OF BYTE;
  57.                     partStart   : ARRAY [0..15] OF LONGCARD;
  58.                     cookie      : LONGCARD;
  59.                     cookiePtr   : ADDRESS;
  60.                     versionNum  : SHORTCARD;
  61.                     maxSectSize : SHORTCARD;
  62.                     reserverd   : ARRAY [0..15] OF LONGCARD;
  63.                   END;
  64.                   
  65.      PtrBCB     = POINTER TO BCB;
  66.      BCB        = RECORD
  67.                     n_link      : PtrBCB;       (* nächster BCB         *)
  68.                     bufdrv      : SHORTINT;     (* Laufwerksnummer      *)
  69.                     buftyp      : SHORTINT;     (* FAT- od. Dir-Buffer  *)
  70.                     bufrec      : SHORTINT;     (* Recordnummer         *)
  71.                     dirty       : SHORTINT;     (* Schreibzugriff hat
  72.                                                  * stattgefunden        *)
  73.                     dm          : ADDRESS;      (* Zeiger auf DMD       *)
  74.                     bufr        : ADDRESS;      (* Zeiger auf Buffer    *)
  75.                   END;
  76.                   
  77.      LBITSET    = SET OF [0..31];
  78.      
  79.      cookie     = RECORD
  80.                     id          : ARRAY[0..3] OF CHAR;
  81.                     value       : LONGCARD;
  82.                   END;
  83.  
  84. VAR
  85.     
  86.  etv_timer  [$400] : ADDRESS;  (* Interrupt-Vektor des System-Timers *)
  87.  etv_critic [$404] : ADDRESS;  (* Vektor für den Critical-Error-Handler *)
  88.  etv_term   [$408] : ADDRESS;  (* Interrupt-Vektor für Prozeßbeendigungen *)
  89.  etv_xtra   [$40c] : ARRAY [0..4] OF ADDRESS;
  90.                                (* 5 reservierte Vektoren *)
  91.  memvalid   [$420] : LONGCARD; (* = $752019f3 heißt, Speicherkonfiguration *)
  92.                                (* ist gültig (nach RESET)                  *)
  93.                                (* siehe auch memval2, memval3 und memcntrl *)
  94.  memcntrl   [$424] : SHORTINT; (* Unteres Nibble des Schattenregisters des *)
  95.                                (* Speicherkontroll-Registers ($ff8001)     *)
  96.  resvalid   [$426] : LONGCARD; (* = $31415926 => bei RESET über resvector  *)
  97.                                (*                springen                  *)
  98.  resvector  [$42a] : ADDRESS;  (* siehe resvalid                           *)
  99.  phystop    [$42e] : ADDRESS;  (* Zeigt auf 1. Byte über phys. Ende des RAM *)
  100.  _membot    [$432] : ADDRESS;  (* Anfang des unter GEMDOS freien Speichers  *)
  101.  _memtop    [$436] : ADDRESS;  (* Ende   des unter GEMDOS freien Speichers  *)
  102.  memval2    [$43a] : LONGCARD; (* = $237698aa , gilt in Verbindung mit memval *)
  103.  flock      [$43e] : SHORTINT; (* für Sperren des DMA-Zugriffs             *)
  104.  seekrate   [$440] : SHORTINT; (* Default-Werte für die Floppy-Steprate    *)
  105.  _timer_ms  [$442] : SHORTINT; (* Zeit in ms, die zwischen zwei System-Timer *)
  106.                                (* Interrupts liegt, normalerweise 20 ms    *)
  107.  _fverify   [$444] : SHORTINT; (* 0: kein Verify nach Floppy-Schreiben     *)
  108.  _bootdev   [$446] : SHORTINT; (* legt das Boot-Laufwerk nach dem nächstem *)
  109.                                (* RESET fest                               *)
  110.  palmode    [$448] : SHORTINT; (* für Fernsehnorm: FALSE=60Hz, sonst 50Hz  *)
  111.  defshiftmd [$44a] : SHORTINT; (* Default Farb-Auflösung: 0=320*200,1=640*200*)
  112.  sshiftmd   [$44c] : BYTE;     (* Shadow des Shifter-Modus-Registers       *)
  113.  _v_bas_ad  [$44e] : ADDRESS;  (* Zeiger auf den Anfang des Bildspeichers  *)
  114.  vblsem     [$452] : SHORTINT; (* TRUE= VBL-Handler aktiviert              *)
  115.  nvbls      [$454] : SHORTINT; (* Anzahl der Einträge in _vblqueue         *)
  116.  _vblqueue  [$456] : PtrVBL;   (* Zeiger auf Tabelle mit Adressen der VBL- *)
  117.                                (* Routinen. 1. Vektor immer Mausbewegung!! *)
  118.  colorptr   [$45a] : PtrPalette; (* Zeiger auf Farbpalette nach nächstem VBL *)
  119.                                (* (kann auch 0 sein, dann passiert nichts) *)
  120.  screenpt   [$45e] : ADDRESS;  (* Zeiger auf Start des Bildschirms nach    *)
  121.                                (* nächstem VBlank. (kann auch NIL sein)    *)
  122.  _vbclock   [$462] : LONGCARD; (* Anzahl der bereits erfolgten VBlanks     *)
  123.  _frclock   [$466] : LONGCARD; (* wie _vbclock, wird nur nicht durch vblsem *)
  124.                                (* gestoppt                                 *)
  125.  hdv_init   [$46a] : ADDRESS;  (* Vektor für Init der logischen Drives     *)
  126.  swv_vec    [$46e] : ADDRESS;  (* Vektor auf Routine bei Wechsel           *)
  127.                                (* Mono <-> Color, normalerweise auf RESET  *)
  128.  hdv_bpb    [$472] : ADDRESS;  (* Vektor für GetBPB auf logischen Drives   *)
  129.  hdv_rw     [$476] : ADDRESS;  (* Vektor für Lesen/Schreiben auf log. Drives *)
  130.  hdv_boot   [$47a] : ADDRESS;  (* Vek. für Lesen des Bootsectors auf log. "  *)
  131.  hdv_mediach[$47e] : ADDRESS;  (* Vek. für Wechselstatus auf log. Drive    *)
  132.  _cmdload   [$482] : BOOLEAN;  (* <>0 : Lade COMMAND.COM statt GEM nach Boot *)
  133.  conterm    [$484] : BBS;      (* Attributbits für CON:                    *)
  134.  trp14ret   [$486] : ADDRESS;  (* Interne Rücksprungadresse bei TRAP #14   *)
  135.  criticret  [$48a] : ADDRESS;  (* Interne Rücksprungadresse                *)
  136.  themd      [$48e] : PtrMD;    (* MD-Struktur des GEMDOS. Nicht ändern!    *)
  137.  _____md    [$49e] : PtrMD;    (* Platz für weiteren MD                    *)
  138.  savptr     [$4a2] : ADDRESS;  (* Zeiger auf BIOS Register-Stack           *)
  139.  _nflops    [$4a6] : SHORTINT; (* Anzahl der angemeldeten Disk-Drives      *)
  140.  con_state  [$4a8] : LONGCARD; (* Interner zeiger für Bildschirmausgaben   *)
  141.  sav_row    [$4ac] : SHORTINT; (* Speicher für Cursor-Position             *)
  142.  sav_context[$4ae] : ADDRESS;  (* Zeiger auf Speicherbereich für Regs und  *)
  143.                                (* Stack-Daten bei Exceptions (norm. $380)  *)
  144.  _bufl      [$4b2] : ARRAY[0..1] OF PtrBCB;
  145.                                (* Zeiger auf Buffer-Control-Blocks(BCB)    *)
  146.  _hz_200    [$4ba] : LONGCARD; (* Bisherige Anzahl der 200Hz-Interrupts    *)
  147.  the_env    [$4be] : ADDRESS;  (* Standard Environment Zeiger (unbenutzt)  *)
  148.  _drvbits   [$4c2] : LBITSET;  (* Bit-Feld der angemeldeten Drives         *)
  149.  _dskbufp   [$4c6] : ADDRESS;  (* Zeiger auf 1K-Puffer für Disk-I/O        *)
  150.  _autopath  [$4ca] : ADDRESS;  (* Zeiger auf Zugriffspfad für AUTO-Ordner  *)
  151.  _vbl_list  [$4ce] : ARRAY [0..6] OF ADDRESS;
  152.                                (* Ursprüngliche Liste der VBL-Routinen      *)
  153.  _dumpflg   [$4ee] : SHORTINT; (* Zähler für ALT-HELP-Tastendrücke          *)
  154.  _prtabt    [$4f0] : SHORTINT; (* Flag für Abbruch des Druckvorgangs        *)
  155.  _sysbase   [$4f2] : PtrOSHeader; (* Zeiger auf TOS-Header                  *)
  156.  _shell_p   [$4f6] : ADDRESS;  (* Zeiger auf Kommandoeingabe-Routine einer  *)
  157.                                (* Command-Shell. Im ROM nicht benutzt       *)
  158.  end_os     [$4fa] : ADDRESS;  (* Zeiger auf 1. nicht vom TOS benutztes Byte*)
  159.  exec_os    [$4fe] : ADDRESS;  (* Zeiger auf Shell-Programm nach Init von   *)
  160.                                (* GEMDOS. Normalerweise AES und Desktop     *)
  161.  scr_dump   [$502] : ADDRESS;  (* Zeiger auf Hardcopy-Routine               *)
  162.  
  163.  (* Die folgenden Variablen sind erst ab TOS 1.2 (Blitter-TOS) vorhanden
  164.   *)
  165.  
  166.  prv_lsto   [$506] : ADDRESS;  (* Zeiger auf Routine für Status der Drucker-*)
  167.                                (* Schnittstelle. Ebenfalls für Hardcopy     *)
  168.  prv_lst    [$50a] : ADDRESS;  (* Zeiger auf Routine für Ausgabe auf Drucker-*)
  169.                                (* Schnittstelle. Ebenfalls für Hardcopy     *)
  170.  prv_auxo   [$50e] : ADDRESS;  (* Zeiger auf Routine für Status der RS232-  *)
  171.                                (* Schnittstelle. Ebenfalls für Hardcopy     *)
  172.  prv_aux    [$512] : ADDRESS;  (* Zeiger auf Routine für Ausgabe auf RS232- *)
  173.                                (* Schnittstelle. Ebenfalls für Hardcopy     *)
  174.  pun_ptr    [$516] : PtrHDInfo;(* Zeiger auf HDINFO-Struktur                *)
  175.  memval3    [$51A] : LONGCARD; (* Siehe memval und memval2. Magic=$5555aaaa *)
  176.  
  177.  _longframe [$59E] : INTEGER;  (* Stackoffset bei Exceptions                *)
  178.  
  179.  (* Die folgenden Variablen sind erst ab TOS 1.6 (STE, TT) vorhanden
  180.   *)
  181.  
  182.  _p_cookies [$5A0] : POINTER TO ARRAY[0..MAX(SHORTCARD)] OF cookie;
  183.                                (* Zeiger auf CookieJar - ggf. Null          *)
  184.  
  185.  bell_hook  [$5AC] : ADDRESS;  (* Adresse für 'Glocken'-Ton. Zeigt auf
  186.                                 * normale Prozedur, die mit RTS beendet
  187.                                 * werden muß. Kann Original aufrufen
  188.                                 *)
  189.  kcl_hook   [$5B0] : ADDRESS;  (* Adresse für 'Key-Click'-Ton. Ähnlich
  190.                                 * bell_hook, sollte nur sehr kurz sein.
  191.                                 *)
  192.  
  193.  (* Die folgenden zwei sind noch nicht offiziell, sondern nur aus dem
  194.   * SysMon entnommen, wahrscheinlich TT-Only
  195.   *)
  196.  
  197.  fmemtop    [$5A4] : ADDRESS; (* Memtop für Fast-RAM (TT-only!)             *)
  198.  fmemvalid  [$5A8] : ADDRESS; (* Memvalid für Fast-RAM. Magic nicht bekannt *)
  199.  
  200. END SysVars2.
  201.